(*%F _fdata *)
(*# call(seg_name => null) *)
(*%E *)
(*# module(implementation=>off) *)
(*# data(seg_name => null) *)
(*# call(o_a_copy => off) *)
(*# check(stack=>off,
          index=>off,
          range=>off,
          overflow=>off,
          nil_ptr=>off) *)
DEFINITION MODULE UTIL;

(* Source code for JPI TopSpeed Modula-2 by

    Carl Neiburger
    169 N. 25th St.
    San Jose, Calif. 95116

    CompuServe No. 72336,2257

*)

        (* NOTE: THIS IS AN ABRIDGED VERSION OF UTIL TO DEFINE TYPES *)
                     (* USED IN FILE TRANSFER PROTOCOLS *)

FROM Str IMPORT CHARSET;

TYPE
          NUMSET = SET OF SHORTCARD;
          SBITSET = SET OF [0..7];

          str2  = ARRAY [0..1] OF CHAR;
          str3  = ARRAY [0..2] OF CHAR;
          str5  = ARRAY [0..4] OF CHAR;
          str6  = ARRAY [0..5] OF CHAR;
          str9  = ARRAY [0..8] OF CHAR;
          str10 = ARRAY [0..9] OF CHAR;
          str11 = ARRAY [0..10] OF CHAR;
          str12 = ARRAY [0..11] OF CHAR;
          str32 = ARRAY [0..31] OF CHAR;
          str80 = ARRAY [0..79] OF CHAR;

CONST

   FiChars = CHARSET {'!', '#'..'%', '(', ')', '-', '.',
            '0'..'9', '@'..'Z', '^', '_', '{', '}', '~'};

END UTIL.
